<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    

    <!-- 

        ES6  ->   ES2015   =>  2105 发布的第六代 ECMASCript 版本

        ES7  ->   ES2108   =>  2108 发布的第七代 ECMASCript 版本
        promise
        .then(result => {···})
        .catch(error => {···})
        .finally(() => {···});    promise已经结束了

        上面代码中，不管promise最后的状态，在执行完then或catch指定的回调函数以后，都会执行finally方法指定的回调函数

        finally方法的回调函数不接受任何参数，这意味着没有办法知道，前面的 Promise 状态到底是fulfilled还是rejected
        
        finally finally方法里面的操作，应该是与状态无关的，不依赖于 Promise 的执行结果   不管结果如何 都执行

        
    -->

    <script>
        var p = new Promise(function(resolve,reject){
            setTimeout(()=>{
                var num = Math.random();
                if(num > 0.5){
                    resolve(true)
                }else{
                    reject(false)
                }
            },3000)
        })

        p.then(res=>{
            console.log("fulfilled -- " + res);
        })
        .catch(err=>{
            console.log("rejeced -- " + err);
        })
        .finally(()=>{
            console.log("finally - Promise 执行结束了...")
        })
    </script>
</body>
</html>